<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Jedrzej\Pimpable\PimpableTrait;

class UserLabel extends Model
{
    use HasFactory;
    use PimpableTrait;

    /**
     * 可批量赋值字段
     */
    public $fillable = [
        'label_category_id',
        'label_name'
    ];
    /**
     * 可执行搜索的字段
     */
    protected $searchable = [
        'label_category_id',
        'label_name',
    ];
    /**
     * 默认使用倒叙的字段
     */
    protected $defaultSortCriteria = [
        'id,desc',
    ];

    /**
     *多对多
     */
    public function user()
    {
        return $this->belongsToMany(  //使用多对多的方法进行关联
            user::class,     //要关联的远端的模型
            'user_label_relations',  //中间模型表的名称
            'label_id',   //中间模型关联本模型的外键
            'user_id'   //中间模型关联远端模型的外键
        );
    }

    /**
     *  标签对应的标签分类表
     */
    protected function lableCategories()
    {
        return $this->belongsTo(LableCategory::class, 'label_category_id', 'id');
    }

}
